package org.dolphin.dao;

import java.io.Serializable;
import java.util.List;
import org.dolphin.base.bean.FlatCustomerVO;
import org.dolphin.entity.customer.Customer;
import org.hibernate.criterion.Order;

public interface CustomerDao {

  public Customer fetchCustomer(Serializable id, boolean fetchDistrict);

  public Customer getCustomer(String alias);

  public Customer getCustomer(String alias, Serializable excludedId);

  public List<FlatCustomerVO> getCustomers(int firstResult, int maxResults, List<Order> orders);

  public Long getCustomersCount();

  public void saveCustomer(Customer customer);

  public void updateCustomer(Customer customer);
}
